I can't believe I have to ask this, but where do I find an actual API reference for Blender scripting? I just can't seem to find one. I see tutorials but no proper reference documentation.

For instance, this page feels like it should be giving me a list of all the members of bpy.data but I don't see any way to get that information. The "next" button just takes me to the next section, and "modules" takes me somewhere else entirely.

What am I missing?

EDIT: The linked dupe DOES NOT answer the question. Clearly you did not read my question. I can't find the ACTUAL API REFERENCE. I don't understand why this is so complex to answer.

How do I know what each "class" (or whatever the python equivalent is) member variable and function is?

  • 1
    $\begingroup$ Have you looked at docs.blender.org/api/current/index.html ? $\endgroup$
    – stphnl329
    Jan 11, 2020 at 23:23
  • 1
    $\begingroup$ Or this one if you need "newest" docs.blender.org/api/blender2.8 $\endgroup$
    – HikariTW
    Jan 11, 2020 at 23:39
  • $\begingroup$ And also writing a documentation is a huge job and not that necessary. Blender as an opensource project including all those function, it is hard to keep documentation good as other software like Unity or Javascript, they both make effort on their documentation. $\endgroup$
    – HikariTW
    Jan 11, 2020 at 23:44
  • 2
    $\begingroup$ @Hikariztw See above ^ Also you have to be kidding about documentation not being that necessary. Documentation is exceedingly necessary. It's literally not possible to use an API without documentation. $\endgroup$
    – Clonkex
    Jan 11, 2020 at 23:48
  • 1
    $\begingroup$ In the "for instance" 2.77 documentation link posted above you overlooked =====> Type: bpy.types.BlendData <===== $\endgroup$
    – batFINGER
    Jan 12, 2020 at 1:28

1 Answer 1


Look for class members, (properties, methods et al), in the classes doc page.

bpy.data is a reference to an instance of the bpy.types.BlendData class. All the members of that class will be found in the documentation page for the class (or type),

Most python documentation, I am familiar with, is organized this way, and has often, as is the case here generated from the source.

There may be many references , in this example scrolling down to reference section see that context.blend_data is also an instance of bpy.types.BlendData. Note Even though context.blend_data and bpy.data are both of the same type and for this case mostly the same object, but it is not necessarily so. Might start using me = context.blend_data.meshes.new(...) for methods where context is passed.

A type with numerous references is the blender object. bpy.types.Object for instance the context object of any blender object type. The target of a driver, modifier, constraint on an object. A member of a collection: blend data objects; collection objects or scene objects etc etc etc etc.

Blender uses the convention: names of properties and methods are in lower case, classes in title case. eg bpy.types.WindowManager is a class (being in bpy.types is a bit of a give away too), bpy.context.window_manager an instance of it.

Turn on developer extras to get an API link by right clicking on a property.

  • 3
    $\begingroup$ Note; for some functions, right clicking and copying data path / looking up the API reference doesn't always give you the right path. $\endgroup$
    – asoftbird
    Jan 12, 2020 at 13:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .