Get started

          API Endpoint

            https://app.sprintcv.com/api/v1/
        

The SprintCV API extends the capabilities of the SprintCV platform, allowing developers and organizations to integrate our robust CV generation features directly into their applications or workflows. With this API, not only can you programmatically create and format CVs, but you can also fetch available templates, languages and jobs, retrieve generated profiles, and apply consultants to jobs, all while maintaining the standards and quality that SprintCV is known for.

To access this API, use your access-token and client credentials, available in Company Settings → API. This ensures a secure and seamless integration.

Authentication

To ensure the security and privacy of our users, the SprintCV API employs a token-based authentication system. For each API call you make, you must include the following headers in your request:

  • access-token: Your unique access token.
  • client: Your client identifier.

These headers are essential for authenticating your requests and ensuring that only authorized users have access to our API's functionalities.

Where to find your authentication details?

You can find these details in Company Settings → API on the SprintCV platform. Platform administrators can also see them in the admin area.

We recommend storing these values securely and ensuring they are not exposed or shared unnecessarily. Always use secure methods when transmitting your headers, especially when making calls to our API.

Important: It is mandatory to include the access-token and client headers in every request made to our API. These headers not only ensure security and integrity but are also crucial for identifying the company associated with each API request. Requests that lack these headers will fail authentication and will not be processed, as they are essential for determining which company is interacting with the API.

GET CV Templates

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/cv_templates' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}'
          
        

This endpoint allows users to access a comprehensive list of CV templates provided by SprintCV. It's designed to help users explore various template options and select the most suitable one for their CV generation needs.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/cv_templates


          
            Result example :
            {
              "success": [
                [1, "Classic"],
                [2, "Modern"],
                [23, "Example Company Template"]
              ]
            }
          
        

GET Languages

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/languages' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}'
          
        

The languages endpoint offers a detailed list of available languages supported by SprintCV. This feature enables users to choose a preferred language for their CV, ensuring it meets their specific linguistic requirements.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/languages


          
            Result example :
            {
              "success": [
                { "id": 1, "name": "English" },
                { "id": 2, "name": "Portuguese" }
              ]
            }
          
        

POST generate cv

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/profiles/generate_cv' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}' \
            --form 'file=@"/path/to/cv.pdf"' \
            --form 'data={
              "consultant": {
                "email": "user@sprintcv.com",
                "email_confirmation": "user@sprintcv.com",
                "kind": 0,
                "name": "John",
                "surname": "Doe",
                "profile_language_selected": 1
              },
              "recruiter": {
                "name": "Jane",
                "surname": "Smith",
                "email": "recruiter@example.com"
              },
              "generate_cv": 1,
              "ai_review": 1
            }'
          
        

This endpoint facilitates the creation of a CV based on the user's data and the selected template. Users send their data, and the API responds with a CV tailored to the chosen template.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/profiles/generate_cv

The request must be sent as multipart/form-data. Send the CV in the file field and the remaining fields as a JSON string in the data field. Alternatively, send each field as a bracketed form field (e.g. consultant[email]=user@sprintcv.com) instead of using data.


          
            Result example :
            {
              "success": "The CV is being generated and will be sent to your email soon."
            }
          
        

BODY

Field Type Description Requirement
consultant[public_uid] String Public uid of an existing consultant (consultant.public_uid in the 'Get Profiles' profile data). Use it to add the CV to that consultant. This is not the profile public_uid. Optional
consultant[email] String, Email format The email of the consultant. Required/Optional*
consultant[email_confirmation] String, Email format Email confirmation for the consultant. Required/Optional*
consultant[email_gdpr] String, Email format Email address for consultant's consent. Required/Optional*
consultant[email_gdpr_confirmation] String, Email format Email confirmation for consultant's consent. Required/Optional*
consultant[name] String Consultant's first name. Required
consultant[surname] String Consultant's last name. Required
consultant[profile_language_selected] Integer ID of the selected language profile. Obtain this ID by using the 'Get Languages' API endpoint. Optional
consultant[kind] Boolean: 0 or 1 Ownership of the account by the consultant. '0' if the consultant is the owner of the account, '1' if not. Required
consultant_valid_email Boolean: 0 or 1 Email validation status for the consultant. '1' for a valid email, '0' for an invalid email. Optional*
recruiter[email] String, Email format Recruiter's email address. Required
recruiter[name] String Recruiter's first name. Required
recruiter[surname] String Recruiter's last name. Required
cv_template Integer ID of the CV template. Retrieve available template IDs via the 'Get CV Templates' API endpoint. Optional
file_format String Currently not applied: the CV is generated in the format set in your company settings. Accepted values are 'docx', 'pdf', 'pptx', 'xlsx' and 'json'. Optional
file File File to be uploaded. Required
generate_cv Boolean: 0 or 1 Flag to generate CV. '0' for not generating, '1' for generating. Optional
ai_review Boolean: 0 or 1 Request for AI review. '0' for no review, '1' for review. Optional
generate_cv_language Integer ID of the language in which the CV is generated, if different from the profile language. Obtain this ID by using the 'Get Languages' API endpoint. Optional
ai_prompt_profile_id Integer ID of one of your company's AI prompt profiles, used in the AI review. If not sent, your company's default AI prompt profile is used. Optional
workflow_profile_id Integer ID of one of your company's workflow profiles. Its settings are used for any of the following fields not sent in the request: ai_review, ai_prompt_profile_id, generate_cv, cv_template, generate_cv_language and consultant[profile_language_selected]. Optional

*Note: The requirement for fields marked with 'Required/Optional' depends on specific conditions detailed in the API documentation. Optional fields will use default values set in the company settings if not provided.

Conditional Requirements:

  • 'consultant[name]' and 'consultant[surname]' are always required.
  • If 'kind' is 0:
    • 'consultant[email]' and 'consultant[email_confirmation]' are required.
  • If 'kind' is 1:
    • Include the 'consultant_valid_email' field.
    • If 'consultant_valid_email' is 1:
      • 'consultant[email]' and 'consultant[email_confirmation]' are required.
    • If 'consultant_valid_email' is 0:
      • 'consultant[email_gdpr]' and 'consultant[email_gdpr_confirmation]' are required.

It's important to follow these conditional requirements to ensure proper processing of your request. Failing to include the necessary fields based on the 'kind' value may result in errors or incomplete operations.

JSON Import

          
            # Here is a curl example (consultant without own access, contacted only by consent email)

            curl --location -g '{{url}}/api/v1/company_api_user/profiles/generate_cv' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}' \
            --form 'consultant[kind]=1' \
            --form 'consultant_valid_email=0' \
            --form 'consultant[name]=Alex' \
            --form 'consultant[surname]=Example' \
            --form 'consultant[email_gdpr]=alex@example.com' \
            --form 'consultant[email_gdpr_confirmation]=alex@example.com' \
            --form 'recruiter[name]=Jane' \
            --form 'recruiter[surname]=Smith' \
            --form 'recruiter[email]=recruiter@example.com' \
            --form 'generate_cv=0' \
            --form 'file=@"/path/to/consultant.json"'
          
        

Instead of a CV document, the file sent to the 'Post Generate CV' endpoint can be a .json file with the consultant's data. The file must follow the JSON schema. Dates use the DD-MM-YYYY format.

The JSON file holds the profile content only. The consultant's name, email and the recruiter are sent as form fields, following the same rules as 'Post Generate CV'. The file is validated against the schema while it is processed, so a file that does not follow the schema is accepted by the request but not imported. Validate your file against the schema before sending it.

GET Profiles

Retrieving a consultant's profile data takes two steps: first find the profile's public_uid by the consultant's email, then get that profile's data.

1. Find profiles by email

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/profiles?email=user@sprintcv.com' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}'
          
        

The profiles endpoint returns the profiles of one of your company's consultants, found by the email sent in the 'Post Generate CV' endpoint (consultant[email] or consultant[email_gdpr]). Profiles are ordered from newest to oldest. Since CVs are processed in the background, a profile may take a few moments to appear after calling 'Post Generate CV'.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/profiles?email={email}


          
            Result example :
            {
              "success": [
                {
                  "public_uid": "WfQFmUk5g3rT1WoNXNVuXVwa",
                  "name": "Main profile",
                  "profile_language_id": 1,
                  "created_at": "2026-10-07T14:54:45.024Z",
                  "consultant": {
                    "public_uid": "x8Kq2NvRb5YtLm3PzWc7HdJa",
                    "name": "John",
                    "surname": "Doe",
                    "email": "user@sprintcv.com"
                  }
                }
              ]
            }
          
        

QUERY PARAMETERS

Field Type Description Requirement
email String, Email format The consultant's email. Not case sensitive. Required

2. Get profile data

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/profiles/WfQFmUk5g3rT1WoNXNVuXVwa' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}'
          
        

The profile endpoint returns the full data of one of your company's consultant profiles in JSON: personal details, summary, skills, languages, educations, trainings, projects and technologies. Use a public_uid returned in step 1.

The data follows the same structure used to fill CV templates, so besides the raw values it includes formatting helpers (e.g. dates in several formats, *_lines fields with text split into lines).

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/profiles/{public_uid}


          
            Result example (shortened) :
            {
              "success": {
                "language_code": "en",
                "consultant": {
                  "name": "John",
                  "surname": "Doe",
                  "email": "user@sprintcv.com",
                  "phone": "+351 900 000 000",
                  "country": "Portugal",
                  "city": "Lisbon",
                  "nationality": "Portuguese",
                  "birthdate": "15-03-1990",
                  "linkedin": "https://www.linkedin.com/in/example",
                  ...
                },
                "about": "Backend developer with 10 years of experience building web platforms.",
                "cv_summary": "Backend developer focused on Ruby on Rails and cloud infrastructure.",
                "technical_skills": "Ruby on Rails, PostgreSQL, Redis, Docker, AWS",
                "educations": [
                  {
                    "degree": "Master degree",
                    "course_name": "Computer Science and Engineering",
                    "course_institution": "Example University of Technology",
                    "course_start_date": "01-09-2012",
                    "course_end_date": "31-07-2014",
                    ...
                  }
                ],
                "languages": [
                  { "name": "English", "written": 4, "spoken": 4, "understanding": 5, "is_mother_language": false, ... }
                ],
                "trainings": [
                  {
                    "name": "AWS Certified Solutions Architect - Associate",
                    "kind": "Certification",
                    "company": "Amazon Web Services",
                    "start_date": "10-05-2022",
                    ...
                  }
                ],
                "projects": [
                  {
                    "name": "E-commerce Checkout Platform",
                    "company": "Example Consulting",
                    "client": "Example Retail Group",
                    "job_title": "Senior Backend Developer",
                    "description": "Redesign of the checkout and payment services.",
                    "start_date": "01-02-2020",
                    "end_date": "30-06-2023",
                    "roles": [...],
                    "technologies": [...],
                    ...
                  }
                ],
                ...
              }
            }
          
        
          
            Error example :
            {
              "error": "Profile not found."
            }
          
        

GET Jobs

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/jobs' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}'
          
        

The jobs endpoint provides a comprehensive list of the open job IDs available within your company. This feature allows users to retrieve specific job identifiers, enabling them to manage and reference job-related data efficiently.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/jobs


          
            Result example :
            {
              "success": [
                [1, "20250101-090000-backend-developer", 1],
                [2, "20250115-143000-frontend-developer", 2]
              ]
            }
          
        

Each job is returned as [id, slug, status]. Only the company's jobs with status 1 (online) or 2 (under revision) are listed.

GET Job

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/jobs/{id}' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}'
          
        

The https://app.sprintcv.com/api/v1/company_api_user/jobs/{id} endpoint provides detailed information about a specific job within your company. By specifying the job ID in the URL, users can retrieve comprehensive details including job description, requirements, status, and other relevant data. This feature enables efficient management and referencing of job-related information, ensuring that users have access to all necessary job specifics.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/jobs/{id}


          
            Result example :
            {
              "success": {
                  "id": 23,
                  "company_id": 131,
                  "recruiter_id": 67,
                  "status": 1,
                  "featured_image": {
                      "url": "/uploads/job/featured_image/23/job_cover.jpg",
                      "large": {
                          "url": "/uploads/job/featured_image/23/large_job_cover.jpg"
                      },
                      "medium": {
                          "url": "/uploads/job/featured_image/23/medium_job_cover.jpg"
                      },
                      "small": {
                          "url": "/uploads/job/featured_image/23/small_job_cover.jpg"
                      },
                      "thumb": {
                          "url": "/uploads/job/featured_image/23/thumb_job_cover.jpg"
                      }
                  },
                  "job_title": "Senior Backend Developer",
                  "description_introduction": "We are looking for a Senior Backend Developer to join our product team in Lisbon.",
                  "description_about": "",
                  "description_skills": "Ruby on Rails, PostgreSQL, Redis, REST APIs and Docker.",
                  "description_challenge": "",
                  "description_offer": "",
                  "city": "Lisbon",
                  "country": "PT",
                  "contract_type": 1,
                  "worksite_type": 2,
                  "job_type": null,
                  "contract_duration": null,
                  "client": "",
                  "employer": "",
                  "require_eu_nationality": 0,
                  "visa_sponsorship": 0,
                  "salary_amount": null,
                  "salary_currency": 0,
                  "salary_frequency": null,
                  "show_contact_person": false,
                  "show_company_about": false,
                  "config_min_years_exp": 5,
                  "config_min_years_exp_relevance": 2,
                  "config_min_years_exp_without_studies": 1,
                  "config_min_years_exp_without_studies_relevance": 2,
                  "config_min_degree_level": 1,
                  "config_min_degree_level_relevance": 2,
                  "config_min_years_academic_studies": 1,
                  "config_min_years_academic_studies_relevance": 3,
                  "config_eu_nationality": 1,
                  "config_eu_nationality_relevance": 1,
                  "config_has_visa_to_work_in_eu": 1,
                  "config_has_visa_to_work_in_eu_relevance": 1,
                  "config_expected_monthly_salary": 80000,
                  "config_expected_monthly_salary_relevance": 2,
                  "config_availability": 90,
                  "config_availability_relevance": 0,
                  "config_worksite_type": 1,
                  "config_worksite_type_relevance": 3,
                  "config_contract_type": 1,
                  "config_contract_type_relevance": 2,
                  "created_at": "2024-02-29T12:17:31.537Z",
                  "updated_at": "2024-04-08T12:57:54.413Z",
                  "slug": "20240229-121731-senior-backend-developer",
                  "internal_job_reference": "",
                  "application_notification_emails": "",
                  "include_submitted_cv": false,
                  "total_score": 601,
                  "show_auto_populate": true,
                  "config_city_relevance": 4,
                  "config_country_relevance": 4,
                  "config_nationality_relevance": 4,
                  "config_job_nationality": ""
              }
            }
          
        

POST Job

          
            # Here is a curl example

            curl --location -g '{{url}}/api/v1/company_api_user/jobs/{id}/apply' \
            --header 'access-token: {{access-token}}' \
            --header 'client: {{client}}' \
            --form 'file=@"/path/to/cv.pdf"' \
            --form 'data={
              "consultant": {
                "email": "user@sprintcv.com",
                "email_confirmation": "user@sprintcv.com",
                "kind": 0,
                "name": "John",
                "surname": "Doe"
              }
            }'
          
        

The POST https://app.sprintcv.com/api/v1/company_api_user/jobs/{id}/apply endpoint allows users to apply for a specific job. By submitting the required application data to this endpoint, users can initiate the job application process for the job identified by the specified job ID. This feature streamlines the application process, enabling efficient submission and management of job applications.

The request must be sent as multipart/form-data. Send the CV in the file field and the remaining fields as a JSON string in the data field. Alternatively, send each field as a bracketed form field (e.g. consultant[email]=user@sprintcv.com) instead of using data.

Endpoint: https://app.sprintcv.com/api/v1/company_api_user/jobs/{id}/apply

BODY

Field Type Description Requirement
consultant[email] String, Email format The email of the consultant. Required/Optional*
consultant[email_confirmation] String, Email format Email confirmation for the consultant. Required/Optional*
consultant[email_gdpr] String, Email format Email address for consultant's consent. Optional
consultant[email_gdpr_confirmation] String, Email format Email confirmation for consultant's consent. Must match consultant[email_gdpr]. Optional
consultant[name] String Consultant's first name. Required
consultant[surname] String Consultant's last name. Required
consultant[kind] Boolean: 0 or 1 Ownership of the account by the consultant. '0' if the consultant is the owner of the account, '1' if not. Defaults to '0' if not sent. Optional
consultant[profile_language_selected] Integer ID of the selected language profile. Obtain this ID by using the 'Get Languages' API endpoint. Optional
file File CV file to be uploaded. Required

*Note: If 'kind' is 0 (or not sent), 'consultant[email]' and 'consultant[email_confirmation]' are required. If 'kind' is 1, they are optional; when no email is sent, one is generated for the consultant.


          
            Result example :
              {
                  "success": "Job applied with success"
              }
          
        

Postman

Need Help?

If you need assistance with making API calls or understanding how our API works, we’ve got you covered. We have created a comprehensive Postman collection that includes all the endpoints and their respective request parameters.

You can import this Postman collection to get started quickly and easily test our API.

Postman Collection

Click here to download the Postman collection

Click here to access the Postman collection

This collection includes:

  • All API endpoints
  • Sample request parameters
  • Example responses

For further assistance, feel free to reach out to our support team.


Generate CV Sandbox